package com.cskaoyan.javase.oop3._2inner._2static._1classload;

/**
 * 静态内部类和外围类的类加载不会互相触发,这两个做什么事情都没有关系,不会互相影响
 *
 * @since 11:31
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    // static {
    //     System.out.println("Demo类类加载了!");
    // }


    public static void main(String[] args) {
        // NestedClazz nc = new NestedClazz();
        // 静态内部类和外围类没关系,创建对象不会互相影响,直接创建对象即可
        /*
            但是在外部创建静态内部类对象
            需要指明属于哪个外围类
            但是一定要注意和成员内部类创建对象不同
            不需要创建外围类对象
         */
        EnclosedClazz.NestedClazz nc = new EnclosedClazz.NestedClazz();
    }

}

class EnclosedClazz {
    static {
        System.out.println("EnclosedClazz类类加载了!");
    }

    // 定义静态内部类
    static class NestedClazz {
        static {
            System.out.println("静态内部类类加载!");
        }
    }
}